# -*- coding: utf-8 -*-
"""
Created on Sun Nov 14 14:10:20 2021

@author: 刘长奇-2019300677
"""


import pandas as pd
data=pd.read_csv('train_02.csv')
print(data.duplicated().sum())#186832条重复数据
print(data.info())#None
#无缺失数据，且重负数据过多，不能清除，否则会丢失大量信息

import numpy as np
num,q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,q12,q13,q14,q15,q16,q17,q18,q19,q20,q21,q22,q23,q24,q25,q26,q27,q28,q29,q30,q31,q32,q33,q34,q35,q36,y= np.loadtxt("train.csv",delimiter=',', usecols=(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37), 
	unpack=True)
num = num.reshape(-1,1)
y = y.reshape(-1,1)
for i in range(1,37):
    exec ("q%s=q%s.reshape(-1,1)"%(i,i))
train = np.hstack((q1.reshape(-1,1),q2.reshape(-1,1)))
for i in range(3,37):
    exec ("train=np.hstack((train,q%s.reshape(-1,1)))"%i)
#产生训练集
print(np.shape(train))

#提取主要信息，进行降维处理
from sklearn.decomposition import PCA
pca = PCA(n_components=0.98)
proj = pca.fit_transform(train)
print(np.shape(proj))
#当保留原数据90%信息量时，从36维降维至3维
#当保留原数据95%信息量时，从36维降维至5维
#当保留原数据98%信息量时，从36维降维至9维